package com.vates.vsp.practico.asistencia.service;

import java.util.Collection;
import java.util.List;

import org.springframework.stereotype.Repository;

import com.vates.vsp.practico.alumnos.business.Clases;
import com.vates.vsp.practico.asistencia.business.Asistencia;
import com.vates.vsp.practico.commons.AbstractBaseService;

@Repository("asistenciaService")
public class AsistenciaServiceImpl extends AbstractBaseService implements AsistenciaService{

	/* (non-Javadoc)
	 * @see com.vates.vsp.practico.asistencia.service.AsistenciaService#guardar(com.vates.vsp.practico.asistencia.business.Asistencia)
	 */
	@Override
	public void guardar(Asistencia asistencia){
		this.getHibernateTemplate().saveOrUpdate(asistencia);
	}
	
	/* (non-Javadoc)
	 * @see com.vates.vsp.practico.asistencia.service.AsistenciaService#eliminar(com.vates.vsp.practico.asistencia.business.Asistencia)
	 */
	@Override
	public void eliminar (Asistencia asistencia){
		this.getHibernateTemplate().delete(asistencia);
	}
	
	/* (non-Javadoc)
	 * @see com.vates.vsp.practico.asistencia.service.AsistenciaService#guardar(java.util.Collection)
	 */
	@Override
	public void guardar (Collection<Asistencia> asistencias){
		this.getHibernateTemplate().saveOrUpdateAll(asistencias);
		
	}
	/* (non-Javadoc)
	 * @see com.vates.vsp.practico.asistencia.service.AsistenciaService#eliminar(java.util.Collection)
	 */
	@Override
	public void eliminar (Collection<Asistencia> asistencias){
		this.getHibernateTemplate().deleteAll(asistencias);
	}

	@Override
	public List<Clases> getClases() {
		return this.getHibernateTemplate().find("FROM Clases");
	}

	@Override
	public Clases getClase(Clases clase) {
		return this.get(Clases.class, clase.getId());
	}

	@Override
	public List<Asistencia> presentesPorClase(Clases clase) {
		return this.getHibernateTemplate().find("FROM Asistencia A WHERE A.Clases.id=" + clase.getId());
	}
}
